/*******************************************************************************
 *
 * Copyright (c) 2001-2006 Primeton Technologies, Ltd.
 * All rights reserved.
 *
 * Created on Apr 11, 2008
 *******************************************************************************/
package com.zhmy.xmgl.zhmytask.impl;

import com.primeton.ext.data.sdo.DataUtil;
import com.primeton.ext.data.sdo.ExtendedDataObjectImpl;
import com.zhmy.xmgl.zhmytask.ZhmyCustomer;
import com.zhmy.xmgl.zhmytask.ZhmyProject;

import commonj.sdo.Type;

import java.util.Date;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Test</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectId <em>ProjectId</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectName <em>ProjectName</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectStatus <em>ProjectStatus</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectActualTime <em>ProjectActualTime</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectPactTime <em>ProjectPactTime</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectStartTime <em>ProjectStartTime</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectEndTime <em>ProjectEndTime</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectNote <em>ProjectNote</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectFounder <em>ProjectFounder</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectCtime <em>ProjectCtime</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectUtime <em>ProjectUtime</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getProjectExpectTime <em>ProjectExpectTime</em>}</li>
 *   <li>{@link com.zhmy.xmgl.zhmytask.impl.ZhmyProjectImpl#getZhmyCustomer <em>ZhmyCustomer</em>}</li>
 * </ul>
 * </p>
 *
 * @extends ExtendedDataObjectImpl;
 *
 * @implements ZhmyProject;
 */

public class ZhmyProjectImpl extends ExtendedDataObjectImpl implements ZhmyProject {
	/**
	 * Comment for <code>serialVersionUID</code>
	 */
	private static final long serialVersionUID = 1L;
	public final static int INDEX_PROJECTID = 0;
	public final static int INDEX_PROJECTNAME = 1;
	public final static int INDEX_PROJECTSTATUS = 2;
	public final static int INDEX_PROJECTACTUALTIME = 3;
	public final static int INDEX_PROJECTPACTTIME = 4;
	public final static int INDEX_PROJECTSTARTTIME = 5;
	public final static int INDEX_PROJECTENDTIME = 6;
	public final static int INDEX_PROJECTNOTE = 7;
	public final static int INDEX_PROJECTFOUNDER = 8;
	public final static int INDEX_PROJECTCTIME = 9;
	public final static int INDEX_PROJECTUTIME = 10;
	public final static int INDEX_PROJECTEXPECTTIME = 11;
	public final static int INDEX_ZHMYCUSTOMER = 12;
	public static final int SDO_PROPERTY_COUNT = 13;

	public static final int EXTENDED_PROPERTY_COUNT = -1;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 */
	public ZhmyProjectImpl() {
		this(TYPE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 */
	public ZhmyProjectImpl(Type type) {
		super(type);
	}

	protected void validate() {
		validateType(TYPE);
	}

	/**
	 * Returns the value of the '<em><b>ProjectId</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectId</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectId</em>' attribute.
	 * @see #setProjectId(long)
	 */
	public long getProjectId() {
		return DataUtil.toLong(super.getByIndex(INDEX_PROJECTID, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectId <em>ProjectId</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectId</em>' attribute.
	 * @see #getProjectId()
	 */
	public void setProjectId(long projectId) {
		super.setByIndex(INDEX_PROJECTID, projectId);
	}

	/**
	 * Returns the value of the '<em><b>ProjectName</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectName</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectName</em>' attribute.
	 * @see #setProjectName(java.lang.String)
	 */
	public String getProjectName() {
		return DataUtil.toString(super.getByIndex(INDEX_PROJECTNAME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectName <em>ProjectName</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectName</em>' attribute.
	 * @see #getProjectName()
	 */
	public void setProjectName(String projectName) {
		super.setByIndex(INDEX_PROJECTNAME, projectName);
	}

	/**
	 * Returns the value of the '<em><b>ProjectStatus</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectStatus</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectStatus</em>' attribute.
	 * @see #setProjectStatus(long)
	 */
	public long getProjectStatus() {
		return DataUtil.toLong(super.getByIndex(INDEX_PROJECTSTATUS, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectStatus <em>ProjectStatus</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectStatus</em>' attribute.
	 * @see #getProjectStatus()
	 */
	public void setProjectStatus(long projectStatus) {
		super.setByIndex(INDEX_PROJECTSTATUS, projectStatus);
	}

	/**
	 * Returns the value of the '<em><b>ProjectActualTime</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectActualTime</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectActualTime</em>' attribute.
	 * @see #setProjectActualTime(java.util.Date)
	 */
	public Date getProjectActualTime() {
		return DataUtil.toDate(super.getByIndex(INDEX_PROJECTACTUALTIME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectActualTime <em>ProjectActualTime</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectActualTime</em>' attribute.
	 * @see #getProjectActualTime()
	 */
	public void setProjectActualTime(Date projectActualTime) {
		super.setByIndex(INDEX_PROJECTACTUALTIME, projectActualTime);
	}

	/**
	 * Returns the value of the '<em><b>ProjectPactTime</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectPactTime</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectPactTime</em>' attribute.
	 * @see #setProjectPactTime(java.util.Date)
	 */
	public Date getProjectPactTime() {
		return DataUtil.toDate(super.getByIndex(INDEX_PROJECTPACTTIME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectPactTime <em>ProjectPactTime</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectPactTime</em>' attribute.
	 * @see #getProjectPactTime()
	 */
	public void setProjectPactTime(Date projectPactTime) {
		super.setByIndex(INDEX_PROJECTPACTTIME, projectPactTime);
	}

	/**
	 * Returns the value of the '<em><b>ProjectStartTime</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectStartTime</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectStartTime</em>' attribute.
	 * @see #setProjectStartTime(java.util.Date)
	 */
	public Date getProjectStartTime() {
		return DataUtil.toDate(super.getByIndex(INDEX_PROJECTSTARTTIME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectStartTime <em>ProjectStartTime</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectStartTime</em>' attribute.
	 * @see #getProjectStartTime()
	 */
	public void setProjectStartTime(Date projectStartTime) {
		super.setByIndex(INDEX_PROJECTSTARTTIME, projectStartTime);
	}

	/**
	 * Returns the value of the '<em><b>ProjectEndTime</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectEndTime</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectEndTime</em>' attribute.
	 * @see #setProjectEndTime(java.util.Date)
	 */
	public Date getProjectEndTime() {
		return DataUtil.toDate(super.getByIndex(INDEX_PROJECTENDTIME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectEndTime <em>ProjectEndTime</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectEndTime</em>' attribute.
	 * @see #getProjectEndTime()
	 */
	public void setProjectEndTime(Date projectEndTime) {
		super.setByIndex(INDEX_PROJECTENDTIME, projectEndTime);
	}

	/**
	 * Returns the value of the '<em><b>ProjectNote</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectNote</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectNote</em>' attribute.
	 * @see #setProjectNote(java.lang.String)
	 */
	public String getProjectNote() {
		return DataUtil.toString(super.getByIndex(INDEX_PROJECTNOTE, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectNote <em>ProjectNote</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectNote</em>' attribute.
	 * @see #getProjectNote()
	 */
	public void setProjectNote(String projectNote) {
		super.setByIndex(INDEX_PROJECTNOTE, projectNote);
	}

	/**
	 * Returns the value of the '<em><b>ProjectFounder</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectFounder</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectFounder</em>' attribute.
	 * @see #setProjectFounder(java.lang.String)
	 */
	public String getProjectFounder() {
		return DataUtil.toString(super.getByIndex(INDEX_PROJECTFOUNDER, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectFounder <em>ProjectFounder</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectFounder</em>' attribute.
	 * @see #getProjectFounder()
	 */
	public void setProjectFounder(String projectFounder) {
		super.setByIndex(INDEX_PROJECTFOUNDER, projectFounder);
	}

	/**
	 * Returns the value of the '<em><b>ProjectCtime</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectCtime</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectCtime</em>' attribute.
	 * @see #setProjectCtime(java.util.Date)
	 */
	public Date getProjectCtime() {
		return DataUtil.toDate(super.getByIndex(INDEX_PROJECTCTIME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectCtime <em>ProjectCtime</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectCtime</em>' attribute.
	 * @see #getProjectCtime()
	 */
	public void setProjectCtime(Date projectCtime) {
		super.setByIndex(INDEX_PROJECTCTIME, projectCtime);
	}

	/**
	 * Returns the value of the '<em><b>ProjectUtime</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectUtime</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectUtime</em>' attribute.
	 * @see #setProjectUtime(java.util.Date)
	 */
	public Date getProjectUtime() {
		return DataUtil.toDate(super.getByIndex(INDEX_PROJECTUTIME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectUtime <em>ProjectUtime</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectUtime</em>' attribute.
	 * @see #getProjectUtime()
	 */
	public void setProjectUtime(Date projectUtime) {
		super.setByIndex(INDEX_PROJECTUTIME, projectUtime);
	}

	/**
	 * Returns the value of the '<em><b>ProjectExpectTime</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ProjectExpectTime</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ProjectExpectTime</em>' attribute.
	 * @see #setProjectExpectTime(java.util.Date)
	 */
	public Date getProjectExpectTime() {
		return DataUtil.toDate(super.getByIndex(INDEX_PROJECTEXPECTTIME, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getProjectExpectTime <em>ProjectExpectTime</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ProjectExpectTime</em>' attribute.
	 * @see #getProjectExpectTime()
	 */
	public void setProjectExpectTime(Date projectExpectTime) {
		super.setByIndex(INDEX_PROJECTEXPECTTIME, projectExpectTime);
	}

	/**
	 * Returns the value of the '<em><b>ZhmyCustomer</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>ZhmyCustomer</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ZhmyCustomer</em>' attribute.
	 * @see #setZhmyCustomer(com.zhmy.xmgl.zhmytask.ZhmyCustomer)
	 */
	public ZhmyCustomer getZhmyCustomer() {
		return (ZhmyCustomer) DataUtil.toDataObject(super.getByIndex(INDEX_ZHMYCUSTOMER, true));
	}

	/**
	 * Sets the value of the '{@link com.primeton.eos.Test#getZhmyCustomer <em>ZhmyCustomer</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>ZhmyCustomer</em>' attribute.
	 * @see #getZhmyCustomer()
	 */
	public void setZhmyCustomer(ZhmyCustomer zhmyCustomer) {
		super.setByIndex(INDEX_ZHMYCUSTOMER, zhmyCustomer);
	}


}